import axios from 'axios'
import Ajax from './ajax'
// import exportImg from '@/view/export-img'
// import AjaxApp from './app'

var CancelToken = axios.CancelToken

const ajax = new Ajax(function (data) {
  if (data.code === 0) {
    return data.data
  }
  return new Error(data.message)
})
// const ajaxGo = new Ajax(function (data) {
//   if (data.code === 0) {
//     return data.result
//   }
//   return new Error(data.message)
// })

const api = {
  id: '0', // 可据此判断是否为编辑状态。0 为新增
  // login (data) {
  //   return ajaxGo.post('/comm/v1/token', data)
  // },
  getData (id) {
    this.id = id
    return ajax.get('/TemplateSet/GetTemplate?templateId=' + id)
  },
  async save (data) {
    // 截图
    // let blob = await exportImg(el)
    // window.open(URL.createObjectURL(blob)) // 测试
    // return ajax.post('/Mccard/Default/AddHoliday_TemplateNew', {
    return ajax.post('/TemplateSet/AddHoliday_TemplateNew', {
      id: this.id,
      name: data.name,
      width: data.dpi.width,
      height: data.dpi.height,
      imgUrl: '',
      templateUrl: JSON.stringify(data)
    })
  },
  // async fileUpload ({ file, onProgress }) {
  //   // 模拟
  //   for (let i = 4; i--;) {
  //     await new Promise((resolve) => {
  //       onProgress(100 - ~~(i / 4 * 90))
  //       setTimeout(() => {
  //         resolve()
  //       }, 500)
  //     })
  //   }

  //   let src = await new Promise(resolve => {
  //     var fileReader = new FileReader()
  //     // 文件读取 完后触发
  //     fileReader.onload = function (e) {
  //       resolve(e.target.result)
  //     }
  //     // 文件读取为 DataURL，base64
  //     fileReader.readAsDataURL(file)
  //   })
  //   return src
  // }
  async fileUpload ({ file, onProgress, cancelToken = () => {} }) {
    let fd = new FormData()
    fd.append('file', file)
    let d = await ajax.post('/Mccard/ClassBrand/UploadImage', fd, {
      onUploadProgress: e => {
        if (e.lengthComputable) {
          onProgress(e.loaded / e.total)
        }
      },
      hasLoading: false,
      cancelToken: new CancelToken(cancelToken)
    })

    // let dataUrl = await new Promise(resolve => {
    //   var fileReader = new FileReader()
    //   // 文件读取 完后触发
    //   fileReader.onload = function (e) {
    //     resolve(e.target.result)
    //   }
    //   // 文件读取为 DataURL，base64
    //   fileReader.readAsDataURL(file)
    // })

    return {
      url: d.Url
    }
  },

  // 附件上传，支持 pdf doc docx ppt pptx xls xlsx
  // 最终返回 pdf 文件 url
  async uploadOfficeTransitionPdf ({ file, onProgress, cancelToken = () => {} }) {
    let fd = new FormData()
    fd.append('file', file)
    let d = await ajax.post('/TemplateSet/UploadOfficeTransitionPdf', fd, {
      onUploadProgress: e => {
        if (e.lengthComputable) {
          onProgress(e.loaded / e.total)
        }
      },
      hasLoading: false,
      cancelToken: new CancelToken(cancelToken)
    })
    if (d.Result) {
      return {
        url: d.Url
      }
    }
    throw new Error(d.Mesg)
  },

  // 验证视频url是否过时
  validityVideoToken (url) {
    return axios.get(url).then(() => {
      return 0
    }).catch(() => {
      return 1
    })
  },
  // 获取带 token 的 url
  getPlayDownloadUrl (url) {
    return ajax.get('/Mccard/ClassBrand/GetPlayDownloadUrl?url=' + url)
  }
}

export default api
